package owg.util.opengl;

import com.jogamp.opengl.GL;

/**Provides a cross-platform, type safe reference point for blend modes.
 * The GLUtil implementation must provide the value of the functions and operands!*/
public enum BlendMode {
	REPLACE(GL.GL_ONE, GL.GL_ZERO),
	NORMAL(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA),
	NORMAL_PRE(GL.GL_ONE, GL.GL_ONE_MINUS_SRC_ALPHA),
	ADD(GL.GL_SRC_ALPHA, GL.GL_ONE),
	INVERT(GL.GL_ONE_MINUS_DST_COLOR, GL.GL_ONE_MINUS_SRC_COLOR),
	MULTIPLY(GL.GL_DST_COLOR, GL.GL_ONE_MINUS_SRC_ALPHA),
	REVERSE_MULTIPLY(GL.GL_ZERO, GL.GL_ONE_MINUS_SRC_COLOR);
	
	
	
	public final int src, dst;
	
	BlendMode(int src, int dst) {
		this.src = src;
		this.dst = dst;
	}
}
